Mobile terminals are developed to provide wireless communication between users. As technology has advanced, mobile terminals now provide many additional features beyond simple telephone conversation. For example, mobile terminals are now able to provide additional functions such as an alarm, a Short Messaging Service (SMS), a Multimedia Message Service (MMS), E-mail, games, remote control of short range communication, an image capturing function using a mounted digital camera, a multimedia function for providing audio and video content, a scheduling function, and many more. With the plurality of features now provided, a mobile terminal has effectively become a necessity of daily life.
When a device, such as a mobile device, boots up, the device performs a series of operations to start up the device's components, initialize the device, and prepare the device for operation. Exemplary boot-time operations include probing the device to determine the device's capabilities, constructing compatible memory structures, and writing these structures into the system (e.g., volatile memory). An example structure that the device creates during the booting process is the page tables, which are used for virtual memory management. The paging tables map a virtual memory address used by an application to a corresponding location in physical memory.
The paging tables are typically one of the more complicated data structures, and are constructed during each boot. For example, a four-level paging system may have 512 descriptors of eight bytes: nine address bits at each level plus overhead for settings, output address, permissions, memory attributes, and type. Each page table is therefore 4 KB large, which means that the entire paging system, including each of the paging tables, takes up 8 MB of space. This 8 MB paging system is generally reconstructed during each boot.
During the booting process, the device's components may operate at a limited level. For example, the processor may run at a slower clock rate, and various system caches may be unavailable. As a result, the construction of structures, such as the page tables, may take some time, thereby increasing the time needed for booting the device. While the performance impact may be limited on large scale systems, the impact may be much larger for smaller systems, such as mobile devices or embedded devices, or for systems where increased up-time is an important or necessary feature, such as real-time systems or mission-critical systems.
Accordingly, there is a need for an apparatus and method for providing an improved booting process.